package com.dooioo.pns.entity.model;

import com.dooioo.pns.entity.enums.Platform;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.type.Alias;

import java.io.Serializable;
import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 * PackageName:com.dooioo.pns.entity.model
 * Author: Jerry.hu
 * Create: Jerry.hu (2015-04-22 下午6:36)
 * Description: 设备踢出信息任务表
 */
@Alias("deviceLogoutTask")
public class DeviceLogoutTask implements Serializable {
	private static final long serialVersionUID = -1886210746167472359L;
	/**
	 * 主键id
	 */
	private int id;
	/**
	 * 设备所属平台
	 *
	 */
	private Platform platform;
	/**
	 * 工号userCode
	 */
	private int userCode;
	/**
	 * 设备uuid 值
	 */
	private String uuid;

	/**
	 * 创建时间
	 */
	private Date createTime;
	/**
	 * 更新时间
	 */
	private Date updateTime;
	/**
	 * 状态信息  1正常，2 失效，9.删除
	 */
	private int status;
	/**
	 * 应用app Id
	 */
	private int appId;
	/**
	 * 被踢的提示信息
	 */
	private String logoutMsg;

	/**
	 * 设备注册 leancloud Id
	 */
	private String deviceId;
	/**
	 * 设备 踢出信息的id
	 */
	private String messageId;



	public DeviceLogoutTask() {

	}

	public DeviceLogoutTask(int appId, int userCode, Platform platform){
		this.appId = appId;
		this.userCode = userCode;
		this.platform = platform;
	}

	public DeviceLogoutTask(int appId, int userCode, String uuid, Platform platform){
		this.appId = appId;
		this.userCode = userCode;
		this.uuid = uuid;
		this.platform = platform;
	}

	/**
	 * 获取 主键id
	 * @return 主键id
	 */
	public int getId() {
		return id;
	}

	/**
	 * 设置 主键id
	 * @param id 主键id
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * 获取 创建时间
	 * @return  创建时间
	 */
	public Date getCreateTime() {
		return createTime;
	}

	/**
	 * 设置 创建时间
	 * @param createTime 创建时间
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}



	/**
	 * 获取 状态信息  1正常，2 失效，9.删除
	 * @return 状态信息  1正常，2 失效，9.删除
	 */
	public int getStatus() {
		return status;
	}

	/**
	 * 设置 状态信息  1正常，2 失效，9.删除
	 * @param status 状态信息  1正常，2 失效，9.删除
	 */
	public void setStatus(int status) {
		this.status = status;
	}

	/**
	 * 获取 设备uuId 值
	 * @return  设备uuId 值
	 */
	public String getUuid() {
		if(StringUtils.isBlank(uuid)){
			return uuid;
		}
		return uuid.trim();
	}

	/**
	 * 设置  设备uuId 值
	 * @param uuId  设备 uuId 值
	 */
	public void setUuid(String uuId) {
		this.uuid = uuId;
	}

	/**
	 * 获取  userCode 工号
	 * @return  userCode 工号
	 */
	public int getUserCode() {
		return userCode;
	}

	/**
	 * 设置  userCode 工号
	 * @param userCode  userCode 工号
	 */
	public void setUserCode(int userCode) {
		this.userCode = userCode;
	}

	/**
	 * 获取 更新时间
	 * @return  更新时间
	 */
	public Date getUpdateTime() {
		return updateTime;
	}

	/**
	 * 设置  更新时间
	 * @param updateTime 更新时间
	 */
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	/**
	 * 获取 appId
	 * @return appId
	 */
	public int getAppId() {
		return appId;
	}

	/**
	 * 设置 appId
	 * @param appId appId
	 */
	public void setAppId(int appId) {
		this.appId = appId;
	}

	public Platform getPlatform() {
		return platform;
	}

	public void setPlatform(Platform platform) {
		this.platform = platform;
	}

	public String getLogoutMsg() {
		return logoutMsg;
	}

	public void setLogoutMsg(String logoutMsg) {
		this.logoutMsg = logoutMsg;
	}

	public String getDeviceId() {
		if(StringUtils.isBlank(deviceId)){
			return deviceId;
		}
		return deviceId.trim();
	}

	public void setDeviceId(String deviceId) {
		this.deviceId = deviceId;
	}

	public String getMessageId() {
		return messageId;
	}

	public void setMessageId(String messageId) {
		this.messageId = messageId;
	}

	@Override
	public String toString() {
		final StringBuffer sb = new StringBuffer("DeviceInfo{");
		sb.append("appId=").append(appId);
		sb.append(", id=").append(id);
		sb.append(", platform=").append(platform);
		sb.append(", userCode=").append(userCode);
		sb.append(", uuid='").append(uuid).append('\'');
		sb.append(", createTime=").append(createTime);
		sb.append(", updateTime=").append(updateTime);
		sb.append(", status=").append(status);
		sb.append('}');
		return sb.toString();
	}
}
